package com.spider.im.chat.message;

import com.google.protobuf.ByteString;
import com.google.protobuf.Message;
import io.netty.channel.Channel;
import io.netty.channel.ChannelHandlerContext;

import java.util.concurrent.ConcurrentHashMap;

/**
 * 泛型消息处理器接口，用于处理特定类型的 Protobuf 消息。
 *
 * @param <T> 要处理的消息类型，必须是 Protobuf 的 Message 子类
 */
public interface MessageStrategy<T extends Message> {

    /**
     * 处理接收到的消息
     *
     * @param ctx     Netty 上下文
     * @param payload 解析前后的 Protobuf 消息
     */
    void handle(ChannelHandlerContext ctx, ByteString payload);
}
